namespace MLTimeline
{
    public interface IClip
    {
        int StartFrame { get; }
        int EndFrame { get; }
        int DurationInFrames => EndFrame - StartFrame;
        void Initialize(Timeline timelineData);
        /// <summary>
        /// 核心评估方法：根据数据和进度，更新目标对象。
        /// </summary>
        /// <param name="frame">当前剪辑的帧数</param>
        /// <param name="progress">当前剪辑的播放进度 (0.0 到 1.0)</param>
        /// <param name="frameRate">时间轴的帧率，用于计算虚拟时间增量</param>
        void Evaluate(int frame, float progress, float frameRate);
        /// <summary>
        /// 当剪辑开始播放时调用
        /// </summary>
        void Enter();
        /// <summary>
        /// 当剪辑停止播放时调用
        /// </summary>
        void Exit();
    }
}